#pragma once

#include "MUltiPhasePyrolysisMaterial.h"
#include "TimeKernel.h"
#include "SinglePhasePyrolysisMaterial.h"
#include "Material.h"


class PyrolysisRhoKernel : public TimeKernel
{
public:

	PyrolysisRhoKernel(const InputParameters & parameters);

protected:
  virtual Real computeQpResidual();
  virtual Real computeQpJacobian();
  virtual Real computeQpOffJacobian(unsigned int jvar);

private:
  std::string _rho_name;
  const MaterialProperty<Real> & _pyrolysis_source;
  const MaterialProperty<Real> & _dsource_drho;
  const MaterialProperty<Real> & _dsource_dT;
  unsigned int _T_num;
};

template<>
InputParameters validParams<PyrolysisRhoKernel>();
